As the value and use of information continues to increase, individuals and businesses continually seek additional ways to process and store information. One option available to users of information is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary with regard to the kind of information that is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use, including such uses as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Computers, including servers and workstations, are often grouped in clusters to perform specific tasks. A server cluster is a group of independent servers that is managed as a single system and is characterized by higher availability, manageability, and scalability, as compared with groupings of unmanaged servers. A server cluster typically involves the configuration of a group of independent servers such that the servers appear in the network as a single machine or unit. Server clusters are often managed as a single system, share a common namespace on the network, and are designed specifically to tolerate component failures and to support the addition or subtraction of components in the cluster in a transparent manner. At a minimum, a server cluster includes two or more servers that are connected to one another by a network. The server cluster may include software driven methods by which each client of the server cluster may access the data stored in or controlled by a server of the server cluster. One software application that is used to manage the operation of a server cluster is Microsoft Cluster Server (MSCS), which is produced by the Microsoft Corporation of Redmond, Wash.
In some server cluster configurations, many components of the server cluster are redundant, allowing the component to be replaced or upgraded while the server cluster is online in the network and without affecting the operation of the network. Server clusters often include a shared storage element in which each drive of shared storage is accessible by each node, or server, of the server cluster. From time to time, the firmware associated with the storage drives comprising the shared storage must be updated. The process of updating the firmware of a storage drive involves taking the storage drive down or offline and updating the firmware. This step is followed by a reboot of the storage drive in which the storage drive is placed back in service in the shared storage of the server cluster.
The firmware update process often involves the necessity of taking offline the entire shared storage unit of the server cluster. The step of taking the shared storage of the server cluster offline for the purpose of updating the firmware of the storage drives of shared storage may occur on a scheduled basis or on an as-needed basis. Taking all of the shared storage of a server cluster offline is problematic in that server clusters often host critical applications that require high data availability. Taking the shared storage of server cluster offline increases the downtime for critical, hosted applications hosted that require uninterrupted operation and availability of shared storage. Because the shared storage of the cluster server is offline, the nodes of the server cluster will be unable to access the shared storage. Because of the difficulties involved in taking a critical application offline, many organizations choose not to update storage drive firmware, causing the storage drives of the shared storage to operate with firmware that is out of date or faulty, thereby degrading the operation of the entire server cluster.
The shared storage of the server cluster may include fault tolerant data storage. One example of fault tolerant data storage is a RAID (Redundant Array of Inexpensive Disks) storage system. RAID storage systems combine multiple disks into an array of disk drives to obtain performance, capacity, and reliability advantages. RAID Level 5 is an example of a fault tolerant data storage system. A RAID Level 5 storage system is characterized by the striping of data across the disks of the storage system. A set of parity bits generated by an exclusive-OR of the striped data bits is stored on a disk that is separate from the striped data. The parity bits for the respective stripes of data are distributed in the disks of the storage system so that each disk will likely contain both data bits for a stripe of data and parity bits related to some other stripe of data. In a Raid Level 5 storage system, it is typical that no single disk includes all of the parity bits. Raid Level 5 is often referred to as a rotating parity storage system. If a disk of a RAID Level 5 storage system fails, the data can be rebuilt by performing an exclusive-OR operation with the data of the other disks in the stripe, including the parity bits associated with the data stripe.